#ifndef __WATER_COLLECTION_SYSTEM__
#define __WATER_COLLECTION_SYSTEM__
#include "definition.h"
/***************************/ //
//水质采样线程
/***************************/ //
void *water_sampling(void *null);

/***************************
*函数名： button
*参数：   引脚号
*返回值   （int）1为低电平，-1为高电平
*功能：   检测电平是否发生变化
***************************/
int pin_level_high_or_low(int button_pin);

/***************************
*函数名： Water_pipe_down_to_50cm_depth
*参数：   空
*返回值   （int）
*功能：   控制继电器操作  水管下到0.5米水深
***************************/
int Water_pipe_down_to_50cm_depth();

/***************************
*函数名： Drain_the_water_from_the_pipe
*参数：   int （参数为WITHIN_REMOVE_PIMP_WATER为内排水，为OUTSIDE_REMOVE_PIMP_WATER为外排水） int 排水时间 
*返回值   （int）
*功能：   控制继电器操作  排除水管里的水
***************************/
int Drain_the_water_from_the_pipe(int relay, int p_time, int pin_drainage);
/***************************
*函数名： Pump_to_50cm_bucket
*参数：   空
*返回值   （int）
*功能：   控制继电器操作  抽水到0.5米水桶
***************************/
int Pump_to_50cm_bucket();

/***************************
*函数名： Water_pipe_down_to_100cm_depth
*参数：   空
*返回值   （int）
*功能：   控制继电器操作  水管下潜到1米深
***************************/
int Water_pipe_down_to_100cm_depth();

/***************************
*函数名： Pump_to_100cm_bucket
*参数：   空
*返回值   （int）
*功能：   控制继电器操作  抽水到1米水桶
***************************/
int Pump_to_100cm_bucket();

/***************************
*函数名： Water_pipe_down_to_150cm_depth
*参数：   空
*返回值   （int）
*功能：   控制继电器操作  水管下潜到1.5米深
***************************/
int Water_pipe_down_to_150cm_depth();

/***************************
*函数名： Pump_to_150cm_bucket
*参数：   空
*返回值   （int）
*功能：   控制继电器操作  抽水到1.5米水桶
***************************/
int Pump_to_150cm_bucket();

/***************************
*函数名： Water_pipg_recycling
*参数：   空
*返回值   （int）
*功能：   控制继电器操作  收回水管且排出水管里的水
***************************/
int Water_pipg_recycling();

/***************************
*函数名： Composite_drainage
*参数：  1. 控制内排水的继电器（ 控制抽水排水水箱的继电器） 
         2. 内排水的时间，单位秒
         3. 外排水的时间，单位秒
*返回值   （int）
*功能：   内外复合排水，把水管的水排干净，具体看实物理解
***************************/
int Composite_drainage(int solenoid_valve, int within_time, int outside_time);

/***************************
*函数名： Pump_water_to_the_bucket
*参数：   控制抽水排水水箱的继电器
*返回值   （int）
*功能：   开始抽水
***************************/
int Pump_water_to_the_bucket(int pump_relay);

/***************************
*函数名： Water_pipe_diving
*参数：   空
*返回值   （int）
*功能：   水管下潜
***************************/
int Water_pipe_diving();

/***************************
*函数名： Drain_time_handle
*参数：   int  排水时间 
*返回值   0正常退出，-1为收到停止抽水信号
*功能：   在延迟中可被停止信号中断
***************************/
int Drain_time_handle(int drain_time);

void pump_feedbdack(WXT_MSG_ID pump_feedback_cmd);

int Water_pipe_reset();

void Pumping_system_init();

void Water_pipe_init();
#endif